// 这个文件是向模拟服务器mock，发请求，二次封装axios.
// 用mockAjax请求的，图片等资源都要放到public中
import axios from 'axios'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
const mockAjax=axios.create({
    baseURL:'/mock',
    timeout:5000,
})

// 请求
mockAjax.interceptors.request.use((config)=>{
    NProgress.start()
    return config
}
   
)
// 响应回来是一个promise对象，所以需要接收两种，一种是成功状态，一种是失败状态。
mockAjax.interceptors.response.use((response)=>{
    NProgress.done()
    return response.data
},(err)=>{
    NProgress.done()
    // return error.message不能直接写error.message，因为error.message可能也是字符串，那么在后面进入异步请求的时候，会被当做成功的状态，而在这里写成Promise.reject(new Error(error.message))被异步请求接收的时候就一定是一个失败的状态了。
    return Promise.reject(new Error(error.message))
} 
)

export default mockAjax